home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 April / EnigmA AMIGA RUN 17 (1997)(G.R. Edizioni)(IT)[!][issue 1997-04][EAR-CD].iso / EARCD / comm / fido / OBManager.lha / OBManager / ARexx / dos / Error next >
Text File  |  1995-06-12  |  1KB  |  70 lines

  1. /*
  2.  * error
  3.  *
  4.  * USAGE: CALL 'dos/error'(errcode,errline,infoline,srcline)
  5.  *
  6.  * This is a global error handling routine.
  7.  *
  8.  * $(C): (1995, Rocco Coluccelli, Bologna)
  9.  * $VER: error 1.01 (29.May.1995)
  10.  */
  11.  
  12. SIGNAL ON halt
  13. SIGNAL ON break_c
  14.  
  15. nl = '0a'x
  16. logfile = 'REXX:.errors.log'
  17.  
  18. str.1 = 'Error:'
  19. str.2 = 'Line:'
  20. str.3 = 'Press return to continue...'
  21.  
  22. PARSE ARG errcode,errline,infoline,srcline
  23.  
  24. CALL CLOSE(STDIN)
  25. CALL OPEN(STDIN,"*")
  26.  
  27. info =     nl ||,
  28.         infoline || nl ||,
  29.         str.1 errcode str.2 errline || nl ||,
  30.         srcline || nl ||,
  31.         ERRORTEXT(errcode) || nl || nl
  32.  
  33. SAY info
  34.  
  35. /*
  36.  *    ENVS:
  37.  *        opt.LOG = output log file
  38.  *        opt.EDIT = ASCII editor
  39.  */
  40. opt.LOG  = 0
  41. opt.EDIT = ''
  42.  
  43. IF OPEN(bug,'ENV:debugxx','r') THEN
  44. DO
  45.     INTERPRET READCH(bug,512)
  46.     CALL CLOSE(bug)
  47.  
  48.     IF opt.LOG = 1 THEN DO
  49.         IF ~OPEN(log,logfile,'a') THEN
  50.             IF ~OPEN(log,logfile,'w') THEN BREAK
  51.  
  52.         CALL WRITECH(log,info)
  53.         CALL CLOSE(log)
  54.     END
  55.  
  56.     IF opt.EDIT ~= '' & WORDS(infoline) = 6 THEN
  57.         ADDRESS COMMAND opt.EDIT WORD(infoline,4)
  58. END
  59.  
  60. /*
  61.  *    Wait user for press ENTER
  62.  */
  63. OPTIONS PROMPT str.3
  64. PULL char
  65.  
  66.  
  67. halt:
  68. break_c:
  69.     RETURN
  70.